package MediciADistanza.Entity;

import java.io.IOException;
import java.io.StringReader;

import org.jdom2.Document;
import org.jdom2.JDOMException;
import org.jdom2.input.SAXBuilder;

import Enum.XML_ELEMENT;


/**
 * Email di richiesta supporto per il centro operativo
 * 
 * <p>Semi Implementata</p>
 * 
 * @author Andrea Iann&igrave;
 */
public class Richiesta {
	/**
	 * Id del mittente dell'email
	 */
	private int Mittente;
	/**
	 * Documento xml allegato
	 */
	protected Document doc;
	/**
	 * Testo del messaggio
	 */
	private String descrizione;
	
	/**
	 * estrae un elemento dall'xml della richiesta 
	 * 
	 * @param element		Elemento richiesto
	 * @return				Restituisce l'elemento cercato, o null se non trovato
	 * 
	 * @pre	getDescrizione()<>null
	 */
	public String getElement(String element) {
		return this.doc.getRootElement().getChildText(element);
	}
	/**
	 * restituisce il tipo della richiesta
	 * 
	 * @pre getDescrizione()<>null
	 */
	public String getTipoRichiesta() {
		String type = this.doc.getRootElement().getChildText(XML_ELEMENT.REQUEST_TYPE);
		return type;
	}

	/**
	 * @return the mittente
	 */
	public int getMittente() {
		return Mittente;
	}

	/**
	 * @param mittente the mittente to set
	 */
	public void setMittente(int mittente) {
		Mittente = mittente;
	}

	/**
	 * @return the descrizione
	 */
	public String getDescrizione() {
		return descrizione;
	}

	/**
	 * @param descrizione the descrizione to set
	 * 
	 * @return Se false l'XML impostato risulta essere non valido
	 */
	public boolean setDescrizione(String descrizione) {
		this.descrizione = descrizione;
		try {
			doc = new SAXBuilder().build(new StringReader(this.descrizione));
			return true;
		} catch (JDOMException | IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
			return false;
		}
	}
	 
}
 
